﻿using Nemerle.Collections;
using Nemerle.Text;
using Nemerle.Utility;

using System;
using System.Collections.Generic;
using System.Linq;

namespace Nemerle2.Compiler
{
  /// <summary>
  /// Base class for a compiler message.
  /// The "Msg" can represent structured a compiler message.
  /// The structured compiler message can be show as multilevel formated hint (hint with popup subhints).
  /// </summary>
  public abstract class Msg
  {
    protected this(kind : ErrorKind) { Kind = kind; }

    public Kind             : ErrorKind;
    public abstract Text    : string { get; }
    public abstract Markup  : string { get; }

    /// Remove markup from string
    protected static RemoveMarkup(markupString : string) : string
    {
      _ = markupString;
      //TODO: Написать парсер вычищающий теги.
      throw NotImplementedException()
    }
  }
}
